always@(posedge clk_50M or negedge rst_n) if(!rst_n) begin gray_dout <= 4'b0000; gray_count <= 4'b0000; // 复位计数器 end else begin case(gray_dout) 4'b0000 : begin gray_dout <=4'b0001; gray_count <=4'b0001; end 4'b0001 : begin gray_dout <= 4'b0011; gray_count <=4'b0010; end 4'b0011 : begin gray_dout <= 4'b0010; gray_count <=4'b0011; end 4'b0010 : begin gray_dout <= 4'b0110; gray_count <=4'b0100; end 4'b0110 : begin gray_dout <= 4'b0111; gray_count <=4'b0101; end 4'b0111 : begin gray_dout <= 4'b0101; gray_count <=4'b0110; end 4'b0101 : begin gray_dout <= 4'b0100; gray_count <=4'b0111; end 4'b0100 : begin gray_dout <= 4'b1100; gray_count <=4'b1000; end 4'b1100 : begin gray_dout <= 4'b1101; gray_count <=4'b1001; end 4'b1101 : begin gray_dout <= 4'b1111; gray_count <=4'b1010; end 4'b1111 : begin gray_dout <= 4'b1110; gray_count <=4'b1011; end 4'b1110 : begin gray_dout <= 4'b1010; gray_count <=4'b1100; end 4'b1010 : begin gray_dout <= 4'b1011; gray_count <=4'b1101; end 4'b1011 : begin gray_dout <= 4'b1001; gray_count <=4'b1110; end 4'b1001 : begin gray_dout <= 4'b1000; gray_count <=4'b1111; end 4'b1000 : begin gray_dout <= 4'b0000; gray_count <=4'b1111; end default:begin gray_dout <= 4'bx; gray_count <= 4'bx; end endcase end